<?php


class Model_Adquisicion extends Zend_Db_Table_Abstract  {

    protected $_name = 'tbl_catalogacion_adquisiciones';

    public function GetTblName() {
        return $this->_name;
    }
    
    public function GetAdquisicionById($adquisicionId) {
        $db = Zend_Db_Table::getDefaultAdapter();
        $select = $this->select();
        $select->from(array($this->_name));
        $select->where('adquisiciones_id = "'.$adquisicionId.'"');
        $select->setIntegrityCheck(false);
        $query = $db->query($select);
        return $query->fetchAll();
    }
    
    public function GetAdquisicionNameExist($adquisicionName) {
        $db = Zend_Db_Table::getDefaultAdapter();
        $select = $this->select();
        $select->from(array($this->_name));
        $select->where('adquisiciones_nombre = "'.$adquisicionName.'"');
        $select->setIntegrityCheck(false);
        $query = $db->query($select);
        return (count($query->fetchAll()) > 0);
    }
    
    public function GetAdquisiciones($like = null){
        $db = Zend_Db_Table::getDefaultAdapter();
        $select = $this->select();
        $select->from(array($this->_name));
        if ($like != null) {
            $select->where('`adquisiciones_nombre` LIKE "%'.$like.'%"');
        }
        $select->order('adquisiciones_nombre');
        $select->setIntegrityCheck(false);
        $query = $db->query($select);
        return $query->fetchAll();        
    }

    public function Guardar($adquisicion) {
        $arr_adquisicion = $adquisicion->ToArray();
        
        $existe = $this->GetAdquisicionNameExist($arr_adquisicion['adquisiciones_nombre']);
        if (!$existe) {
            $db = Zend_Db_Table::getDefaultAdapter();
            $query = "INSERT INTO `".$this->_name;

            $query .= "` (";
            foreach ($arr_adquisicion as $attr => $val ) {
                $query .= "`".$attr."`, ";
            }
            $query = substr($query, 0, -2);
            $query .= ") VALUES (";
            foreach ($arr_adquisicion as $attr => $val ) {
                $query .= "'".$val."', ";
            }
            $query = substr($query, 0, -2);
            $query .= ");";
            
            $db->query($query);
            return true;
        } else {
            return false;
        }
    }
    
    public function Modificar($adquisicionid, $adquisicion) {
        $arr_adquisicion = $adquisicion->ToArray();
        
        $existe = $this->GetAdquisicionNameExist($arr_adquisicion['adquisiciones_nombre']);
        $oldadquisicionid = $this->GetAdquisicionById($adquisicionid);
        if (!$existe || ($existe && $oldadquisicionid[0]['adquisiciones_nombre'] == $adquisicion->nombre)) {
            $db = Zend_Db_Table::getDefaultAdapter();
            
            $query = "UPDATE `".$this->_name."` SET ";
            
            foreach ($arr_adquisicion as $attr => $val ) {
                if ($attr != 'adquisiciones_id') {
                    $query .= "`".$attr."` = '".$val."', ";
                }
            }
            $query = substr($query, 0, -2);
            $query .= " WHERE `adquisiciones_id` = '".$adquisicionid."';";
            
            $db->query($query);
            return true;
        } else {
            return false;
        }
    }
}
